#ifndef reg_guard
#define reg_guard

#include<stdlib.h>
#include<stdint.h>



//======================CPU==================

typedef struct  REG_STRUCT
{
    union//cs app 120页，al、ax、eax、rax是共享低地址的，所以使用union关键字实现，这里仅仅实现rax的，后面rbx~rip都是这样的
    {
        struct{//struct中的内存都是由低到高依次分配的
            uint8_t al;    //低地址
            uint8_t ah;    //高地址
        };
        uint16_t ax;
        uint32_t eax;
        uint64_t rax;
    };

    //寄存器
    uint64_t rbx;
    uint64_t rcx;
    uint64_t rdx;
    uint64_t rsi;
    uint64_t rdi;
    uint64_t rbp;
    uint64_t rsp;
    uint64_t rip;   //pc programm count 指向内存命令的


} reg_t;

static reg_t reg;//由于CPU只有一个，所以在.h头文件中定义一个即可

#endif